﻿namespace wToggle.Platform.Data
{
    using System;
    using System.Collections.Generic;
    using System.Runtime.Serialization;

    using wToggle.Platform.Interfaces;

    [DataContract]
    public sealed class UserData : IEntity
    {
        [DataMember(Name = "id")]
        public ulong Id { get; set; }

        [DataMember(Name = "api_token")]
        public string ApiToken { get; set; }

        [DataMember(Name = "default_wid")]
        public ulong DefaultWorkspaceId { get; set; }

        [DataMember(Name = "email")]
        public string Email { get; set; }

        [DataMember(Name = "fullname")]
        public string FullName { get; set; }

        [DataMember(Name = "jquery_timeofday_format")]
        public string JQueryTimeOfDayFormat { get; set; }

        [DataMember(Name = "jquery_date_format")]
        public string JQueryDateFormat { get; set; }

        [DataMember(Name = "timeofday_format")]
        public string TimeOfDayFormat { get; set; }

        [DataMember(Name = "date_format")]
        public string DateFormat { get; set; }

        [DataMember(Name = "store_start_and_stop_time")]
        public bool StoreStartAndStopTime { get; set; }

        [DataMember(Name = "beginning_of_week")]
        public DayOfWeek StartOfWeek { get; set; }

        [DataMember(Name = "language")]
        public string Language { get; set; }

        [DataMember(Name = "image_url")]
        public string IamgeUrl { get; set; }

        [DataMember(Name = "project")]
        public List<Project> Projects { get; set; }

        [DataMember(Name = "tags")]
        public List<Tag> Tags { get; set; }

        // TODO: Only PRO workspaces
        //[DataMember(Name = "project")]
        //public List<Task> Tasks { get;  set; }

        [DataMember(Name = "workspaces")]
        public List<Workspace> Workspaces { get; set; }

        [DataMember(Name = "clients")]
        public List<Client> Clients { get; set; }
    }
}